Logging insertion/removal of server blades in a data processing system

ABSTRACT

This invention is comprised of a data processing system containing at least one main processor connected to a system bus, a system memory connected to the system bus and accessible to each of the main processors, a tamper mechanism, and a local service processor. The tamper mechanism is configured to change state each time the system is inserted into a slot in a rack enclosure. The local service processor is connected to the tamper mechanism and configured to update an insertion log upon detecting a change in state of the tamper mechanism. The insertion log provides a count and a history of rack insertions to which the system has been subjected. The system may include a non-volatile storage element which is updated exclusively by the local service processor that contains the insertion log. The insertion log may include an insertion counter. In this embodiment, the local service processor is configured to increment the insertion counter upon each insertion. The local service processor may be further configured to issue an alert if the insertion counter exceeds a predetermined value. In one embodiment, the system further includes a battery backed real-time clock connected to the local service processor. The local service processor is configured to include real-time information corresponding to each insertion event in the insertion log. Each entry in the insertion log may include the identity of the rack enclosure and the geographical address of the slot of the corresponding insertion event. The local service processor may be configured to detect the tamper mechanism state and update the insertion following a power event such that the insertion log update is independent of configuring the data processing system with a boot image.

BACKGROUND

1. Field of the Present Invention

The present invention generally relates to the field of data processingsystems and more particularly to a system and method for logging theinsertion and removal of circuit boards or blades in a data processingsystem.

2. History of Related Art

Data processing systems in general and server-class systems inparticular are frequently implemented with a server chassis or cabinethaving a plurality of racks. Each cabinet rack can hold a rack mounteddevice (also referred to herein as a blade or server blade) on which oneor more general purpose processors and/or memory devices are attached.The racks are vertically spaced within the cabinet according to anindustry standard displacement (the “U”). Cabinets and racks arecharacterized in terms of this dimension such that, for example, a 42Ucabinet is capable of receiving 42 1U rack-mounted devices, 21 2Udevices, and so forth. Dense server designs are also becoming available,which allow a server chassis to be inserted into a cabinet rack, thusallowing greater densities than one server per 1U. To achieve thesegreater densities, the server chassis may provide shared components,such as power supplies, fans, or media access devices which can beshared among all of the blades in the server blade chassis.

In a rack-mounted server blade environment, the ability to hot plugserver blades is a standard feature. Hot plugging refers to the abilityto install and remove a blade without turning off power to the cabinet.When a new server blade is initially installed into a cabinet, the bladegenerally contains no operating system and no persistent data. Making anewly added blade functional requires deployment software that iscapable of recognizing that a new blade has been added, determining theblade characteristics to uniquely identify the blade, powering the bladeon, and assigning a functional boot image to the blade. For purposes ofthis disclosure, a boot image refers generally to software stored inpersistent storage that is executed following a power-on or system resetevent. The boot image may execute a self test (commonly referred to as apower on self test or POST), load a basic I/O system (BIOS) into memory,and install a functional operating system.

While the rack design beneficially facilitates the easy configurationand expansion of server systems, it also allows server blades to bemoved about freely within a cabinet or among different cabinets. In thisenvironment, it is frequently difficult for system administrators tokeep track of the location of individual server blades and how manytimes a server blade has been inserted into a rack. For a variety ofreasons, it is highly desirable to maintain accurate information aboutthe location of each server blade. Server blades are typically warrantedby their manufacturer for a specified period of time that typicallybegins when the server blade is first placed in service. Determining thewarranty periods of individual blades can quickly prove formidable ifthe location of each blade is not carefully maintained. Similarly, it isdesirable to maintain service logs for each server blade to identifyproblematic blades and determine the overall cost of operating theblades. Moreover, server blades are typically specified for some maximumof insertions. If blade movement within a system is not tracked, aserver blade may be inserted more times than permitted by the bladespecification thereby potentially resulting in faulty operation and/orthe denial of warranty benefits by the manufacturer. For at least thesereasons, it is desirable to implement a system and method in whichserver blade insertion and movement logs are kept.

SUMMARY OF THE INVENTION

The problems identified above are in large part addressed by a dataprocessing system, referred to as a blade, comprising at least one mainprocessor connected to a system bus, a system memory connected to thesystem bus and accessible to each of the main processors, a tampermechanism, and a local service processor. The tamper mechanism isconfigured to change state each time the system is inserted into a slotin a rack enclosure. The local service processor on each blade isconnected to the tamper mechanism and configured to update an insertionlog upon detecting a change in state of the tamper mechanism. Theinsertion log provides a history of at least some rack insertions towhich the system has been subjected. The system may include anon-volatile storage element accessible exclusively to the local serviceprocessor that contains the insertion log. The insertion log may includean insertion counter. In this embodiment, the local service processor isconfigured to increment the insertion counter upon each insertion. Thelocal service processor may be further configured to issue an alert ifthe insertion counter exceeds a predetermined value. In one embodiment,the system further includes a battery backed real-time clock connectedto the local service processor. The local service processor isconfigured to include real-time information corresponding to eachinsertion event in the insertion log. Each entry in the insertion logmay include the identity of the rack enclosure and the geographicaladdress of the slot of the corresponding insertion event. The localservice processor may be configured to detect the tamper mechanism stateand update the insertion following a power event such that the insertionlog update is independent of configuring the data processing system witha boot image.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects and advantages of the invention will become apparent uponreading the following detailed description and upon reference to theaccompanying drawings in which:

FIG. 1 is a block diagram of selected elements of a data processingsystem suitable for use with one embodiment of the present invention;

FIG. 2 depicts a data processing network according to one embodiment ofthe invention;

FIG. 3 illustrates additional detail of the data processing network ofFIG. 2;

FIG. 4 illustrates selected details of a local service processor and acorresponding non-volatile log storage device according to oneembodiment of the invention; and

FIG. 5 illustrates additional detail of the log storage device of FIG. 4according to one embodiment of the invention.

While the invention is susceptible to various modifications andalternative forms, specific embodiments thereof are shown by way ofexample in the drawings and will herein be described in detail. Itshould be understood, however, that the drawings and detaileddescription presented herein are not intended to limit the invention tothe particular embodiment disclosed, but on the contrary, the intentionis to cover all modifications, equivalents, and alternatives fallingwithin the spirit and scope of the present invention as defined by theappended claims.

DETAILED DESCRIPTION OF THE INVENTION

Turning now to the drawings, FIG. 1 is a block diagram of selectedfeatures of a data processing system 100 suitable for implementing thepresent invention. Data processing system 100 may be implementedentirely upon a single printed circuit board. In this embodiment, dataprocessing system 100 may be alternatively referred to herein as serverblade 100. In the depicted embodiment, server blade 100 includes a setof main processors 102A through 102N (generically or collectivelyreferred to as processor(s) 102) that are connected to a system bus 104.A common system memory 106 is accessible to each processor 102 viasystem bus 104. The system memory is typically implemented with avolatile storage medium such as an array of dynamic random access memory(DRAM) devices. The depicted architecture of server blade 100 isfrequently referred to as a symmetric multiprocessor (SMP) systembecause each processor 102 has substantially equal access to systemmemory 106.

In server blade 100, a bus bridge 108 provides an interface betweensystem bus 104 and an I/O bus 110 to which one or more peripheraldevices 114A through 114N (generically or collectively referred to asperipheral device(s) 114) as well as a general purpose I/O (GPIO) portare connected. Peripheral devices 114 may include devices such as agraphics adapter, a high-speed network adapter or network interface card(NIC), a hard-disk controller, and the like. I/O bus 110 is typicallycompliant with one of several industry standard I/O bus specificationsincluding, as a common example, the Peripheral Components Interface(PCI) bus as specified in PCI Local Bus Specification Rev 2.2 by the PCISpecial Interest Group (www.pcisig.com).

The depicted embodiment of server blade 100 includes a local serviceprocessor 116 connected to GPIO port 112. Local service processor 116 isconfigured to provide support for main processors 102. This support mayinclude, for example, monitoring the power supplied to main processor(s)102 and, in the event of a blade crash, initiating a restart of the mainprocessors.

Turning now to FIG. 2, a data processing network 200 according to oneimplementation of the present invention is depicted. Data processingnetwork 200 includes a rack enclosure or cabinet 201 that includes aplurality of slots or racks 202. Each rack 202 is configured to receivea rack mounted device such as a server blade chassis identified byreference numerals 101 a through 101 n (generically or collectivelyreferred to as server blade chassis 101) via a suitable connectionmechanism such as a traditional edge connector. Each server bladechassis 101 typically contains one or more server blades 100 asdescribed with respect to FIG. 1. In one implementation, each serverblade chassis 101 is a 4U component that may include as many as 16server blades 100. Thus, the depicted embodiment of network 200 includesa set of server blade chassis 101, each of which includes one or moreserver blades 100. Each server blade 100 within server blade chassises101 a through 101 n is typically connected to a local area network (LAN)through its NIC(s) such that server blades 100 in system 200 cancommunicate with each other. Network 200 may itself be connected to anexternal network such as the Internet through a gateway (not depicted)or other suitable network device.

Portions of the present invention may be implemented as a sequence ofprocessor executable instructions (software) for locally maintaining alog of the insertion and removal of a server blade in a data processingnetwork where the instructions are stored on a computer readable medium.During execution, portions of the software may reside in a volatilestorage element such as the system memory 106 depicted in FIG. 1 or anexternal or internal cache memory (not depicted) of main processor(s)102. At other times, portions of the software may be stored on anon-volatile storage medium such as a floppy diskette, hard disk, CDROM, DVD, magnetic tape, or other suitable storage medium. In addition,portions of the software may be executed by management module 120 whileother portions are executed by local service processors 116 of eachserver blade 100.

Turning now to FIG. 3, the local service processor 116 of each serverblade 100 is connected to a set of physical identification (PID)connectors 130 that typically comprise a portion of the edge connectorsof server blade 100. PID connectors 130 are configured to connect to acorresponding set of PID pins 134 of an edge connector 132 residing ineach slot 202 of cabinet 201. The PID pins 134 of each connector 132 areuniquely wired to either ground or VDD to produce a binary valueindicative of the physical position of the slot 202 in which theconnector is positioned. The PID connectors 130 thus provide localprocessor 116 with means for determining the physical slot orgeographical address occupied by the corresponding server blade 100.

Server blades 100 as depicted in FIG. 3 are further configured with atamper latch 135. Tamper latch 135 comprises a mechanism that indicateswhether a corresponding device or apparatus has been altered. In thecase of server blades 100, tamper latch 135 may be configured totransition from a first state to a second state when the correspondingserver blade is inserted into (or removed from) its slot. Tamper latch135 may employ an impedance element that is electrically altered whenthe corresponding server blade 100 is removed from its slot. Theimpedance element preferably remains in this altered state until resetby system software. Thus, tamper latch 135 may include a persistentimpedance element that changes impedance when its corresponding serverblade 100 is inserted into or removed from its slot.

The local service processors 116 of server blades 100 are directlyconnected to system power connector pins of their server blades suchthat local service processors 116 are powered on whenever they areinstalled in their slots 202. In response to a power-up event (meaning apower-on of the local service processor or a hardware reset), localservice processors 116 immediately read their corresponding geographicaladdress or slot location as well as chassis identification information(that is provided to them through separate connectors (not depicted)).In addition, a local service processor will read its correspondingtamper latch to determine if the blade has been removed since the lastpower up event. If the tamper latch is broken (in an impedance conditionindicating that the blade has been removed), local service processor 116increments the insertion count, then resets tamper latch 135. Inaddition, local service processor 116 is configured to log insertioninformation in a non-volatile insertion log.

Referring now to FIG. 4 and FIG. 5, one embodiment of system 100 haslocal service processor 116 connected to a non-volatile storage element142. Storage element 142 is preferably writeable only by local serviceprocessor 116 (i.e., is read-only to main processors 102) and may beimplemented with a flash memory card or other suitable non-volatilestorage device. Storage element 142 includes information comprising ablade insertion log 144.

Blade insertion log 144 typically includes a detailed history of themovement of server blade 100 since its original in-service date. Bladeinsertion log 144 may include, for example, a blade insertion table 152.Table 152 as depicted in FIG. 5 includes a row for each insertion event.Each row of table 152 indicates the time of the corresponding insertionevent, identification information about the chassis in which the bladewas inserted, as well as the physical slot location (geographicaladdress) within the chassis.

In addition, blade insertion log 144 may include an insertion counter150. If, in response to a power on event or hardware reset, localservice processor 116 determines that its tamper latch 135 has beenbroken, the service processor will increment insertion counter 150 andupdate blade insertion log 144 by including a new row of information inthe log. If the number of rows in log 144 is limited, local serviceprocessor may be configured to overwrite the oldest insertion data whenthe log is full. Optionally, the local service processor may beconfigured to only log insertion events where the physical position ofthe blade indicates that the blade has been relocated since the lastinsertion.

The insertion counter 150 provides a secure count of the number ofphysical insertion to which the server blade has been subjected. If theinsertion counter 150 exceeds a predetermined value, local serviceprocessor 116 may issue some form of alert, warning message, interrupt,or the like to indicate that the blade has been inserted/remove moretimes than permitted by specification thereby alerting the systemadministrator to a potential problem. The depicted embodiment of system100 further includes a real-time clock (RTC) 146 connected to localservice processor 116 enabling the inclusion of a date stamp in bladeinsertion table 152. In the preferred embodiment, RTC 146 is a batterybacked persistent clock that remains constantly operational.

When a server blade 100 is inserted into a vacant slot 202 of cabinet201 thereby altering the state of tamper latch 135, the local serviceprocessor 116 performs the insertion log update described above and maysend an asynchronous alert. Because the insertion log update isinitiated in response to the insertion event itself, the loggingmechanism described herein is independent of any configuration of theserver blade 100. Thus, even if a blade is inserted and removed from aslot without ever booting the blade, the blade's insertion log willreflect the insertion.

It will be apparent to those skilled in the art having the benefit ofthis disclosure that the present invention contemplates a system andmethod for logging resource movements in a data processing network. Itis understood that the form of the invention shown and described in thedetailed description and the drawings are to be taken merely aspresently preferred examples. It is intended that the following claimsbe interpreted broadly to embrace all the variations of the preferredembodiments disclosed.

1. A data processing system, comprising: at least one main processorconnected to a system bus; a system memory connected to the system busand accessible to each of the main processors; a tamper mechanismconfigured to change state responsive to insertion of the system into aslot in a rack enclosure; and a local service processor, connected tothe tamper mechanism and configured to update an insertion logresponsive to detecting a changed state of the tamper mechanism, whereinthe insertion log provides a history of at least some rack insertions towhich the system has been subjected.
 2. The system of claim 1, furthercomprising a non-volatile storage element accessible exclusively to thelocal service processor and containing the insertion log.
 3. The systemof claim 2, wherein the insertion log includes an insertion counter, andwherein the local service processor is configured to increment theinsertion counter upon each insertion.
 4. The system of claim 3, whereinthe local service processor is configured to issue an alert responsiveto the insertion counter exceeding a predetermined value.
 5. The systemof claim 1, further comprising a battery backed real-time clockconnected to the local service processor, wherein the local serviceprocessor is configured to include real-time information correspondingto each insertion event in the insertion log.
 6. The system of claim 1,wherein each entry in the insertion log includes the identity of therack enclosure and the geographical address of the slot of thecorresponding insertion event.
 7. The system of claim 1, wherein thelocal service processor is configured to detect the tamper mechanismstate and update the insertion log responsive to a power event such thatthe insertion log update is independent of configuring the dataprocessing system with a boot image.
 8. A data processing network,comprising: a plurality of server blades connected to a common network,each blade comprising at least one main processor connected to a systembus, a system memory connected to the system bus and accessible to eachof the main processors, a tamper mechanism configured to change stateresponsive to insertion of the system into a slot in a rack enclosure;and a local service processor, connected to the tamper mechanism andconfigured to update an insertion log responsive to detecting a changedstate of the tamper mechanism, wherein, the insertion log provides ahistory of at least some rack insertions to which the system has beensubjected.
 9. The network of claim 8, further comprising a non-volatilestorage element accessible exclusively to the local service processorand containing the insertion log.
 10. The network of claim 9, whereinthe insertion log includes an insertion counter, and wherein the localservice processor is configured to increment the insertion counter uponeach insertion.
 11. The network of claim 10, wherein the local serviceprocessor is configured to issue alert responsive to the insertioncounter exceeding a predetermined value.
 12. The network of claim 8,further comprising a battery backed real-time clock connected to thelocal service processor, wherein the local service processor isconfigured to include real-time information corresponding to eachinsertion event in the insertion log.
 13. The network of claim 8,wherein each entry in the insertion log includes the identity of therack enclosure and the geographical address of the slot of thecorresponding insertion event.
 14. The network of claim 8, wherein thelocal service processor is configured to detect the tamper mechanismstate and update the insertion log responsive to a power event such thatthe insertion log update is independent of configuring the dataprocessing system with a boot image.
 15. A computer program productcomprising a set of computer executable instructions for logging serverblade insertions in a data processing network, the instructions beingstored on a computer readable medium, comprising: computer code meansfor determining the state of a tamper latch of the server blade; andcomputer code means, responsive to detecting a tamper latch statechange, for updating an insertion log wherein the insertion log is localto the server blade and provides a history of at least some rackinsertions to which the system bus been subjected.
 16. The computerprogram product of claim 15, wherein the insertion log comprises atleast a portion of a non-volatile storage element accessible exclusivelyto the local service processor.
 17. The computer program product ofclaim 16, wherein the insertion log includes an insertion counter, andwherein the computer program product is configured to increment theinsertion counter upon each insertion.
 18. The computer program productof claim 17, wherein the code means is configured to issue an alertresponsive to the insertion counter exceeding a predetermined value. 19.The computer program product of claim 15, wherein each entry in theinsertion log includes the identity of the rack enclosure and thegeographical address of the slot of the corresponding insertion event.20. The computer program product of claim 15, wherein the local serviceprocessor is configured to detect the tamper mechanism state and updatethe insertion log responsive to a power event such that the insertionlog update is independent of configuring the data processing system witha boot image.